A host device typically utilizes one or more input/output devices for functions such as data storage and retrieval. Examples of host devices are desktop computers, laptop computers, tablet devices, network servers, mobile phones, network equipment such as routers and switches, and many others. Example input/output devices are solid state drives (SSD) and other types of memory devices, printers, and scanners, to name just a few.
A host device that utilizes one or more input/output devices has an overall system input/output latency that is a function of both the host device latency and the input/output device latency. The input/output device latency is a major component of overall system input/output latency, and while the host device latency is often carefully controlled to ensure no system bottlenecks and “perfect host” performance, it is less understood how host device latency varies based on inconsistent input/output device latency.
Perfect hosts do not exist in the real world for all host device workloads. Host device latency may be affected by a number of factors including command execution status and command turnaround time each of which affects effective command queue depth. An example of input/output device latency is the time it takes between submission and completion of a write data request by the host device. Host device latency is also affected by how efficiently the host device utilizes Serial Attached SCSI links to the input/output device, for example, utilizing the Serial Attached SCSI links to provide credit, establish persistent connections, and utilize full duplex.